﻿using System;
using System.Net;

namespace SoftPhone
{
    public class YealinkControl
    {
        private static string _address = @"http://";
        private static string _extend = @"/cgi-bin/ConfigManApp.com?key=";
        private static string _outbound = @"/cgi-bin/ConfigManApp.com?number=";
        private static string _outboundextend = @"&outgoing_uri=";

        public static bool IsInitialize = false;

        public static string CreateActionUri(string yealinkIp, Key key)
        {
            Uri strUrl = new Uri(_address + yealinkIp + _extend + key);
            return strUrl.ToString();
        }

        public static string CreateOutBoundActionUri(string yealinkIp, string extension, string outgoingnumber, string CallServerIP)
        {
            Uri strUrl = new Uri(_address + yealinkIp + _outbound + outgoingnumber + _outboundextend + extension +"@" + CallServerIP);
            return strUrl.ToString();
        }

        public static void SendAction(string actionUri, ref string message)
        {
            if (IsInitialize)
            {
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(actionUri);
                    request.UseDefaultCredentials = true;
                    request.PreAuthenticate = true;
                    YealinkConfig config = new YealinkConfig();
                    request.Credentials = new NetworkCredential(config.Account, config.Password);
                    request.GetResponseAsync();
                }
                catch
                {
                    message = "Không thể gửi lệnh tới điện thoại Yealink." + "\n" + "Hãy xem lại thông tin nhập vào của điện thoại và thử lại.";
                }
            }
        }

    }
}
